(function() {

	'use strict';

	angular.module('ielApp')
	.factory('RelatorioGeralFactory', ['$http', '$q', '$window', function($http, $q, $window){

		function exibirRelatorioGeral(relatorio, $scope) {


			var retorno = $q.defer();

			$http.post('/ProjetoRelatorioBackEnd/rest/agenda/relatorioGeral/', relatorio)
			.success(function(data) {

				if(data == '') {

					alert("Não há dados entre essas datas, tente outras datas!");

				}else {

					var total = 0;

					for(var i =0; i < data.length; i ++) { 

						data[i].dataInicio = moment(data[i].dataInicio).format('L');
						data[i].dataRecebimento = moment(data[i].dataRecebimento).format('L');
						data[i].dataEntrega = moment(data[i].dataEntrega).format('L');

						total += data[i].folha.valor;
					}
				}

				$scope.resultadoTotal = total;

				retorno.resolve(data);

			})
			.error(function() {
				alert("alguma coisa ruim aconteceu")
			});

			return retorno.promise;

		}

		function gerarOPdfAlternativa(dados) {

			$http.post('/ProjetoRelatorioBackEnd/rest/agenda/gerarPdfGeral', dados)
			.success(function() {
				console.log("sucesso!")
			})
			.error(function() {
				console.log('erro');
			})
		}

		function verAgendaPorStatus($scope, filtro) {

			var agora = new Date();
			var mesAtual = agora.getMonth();
			var anoAtual = agora.getFullYear();

			var dadosAtuais = [];
			var dadosAntigos = [];

			var retorno = $q.defer();

			if(filtro == '') {

				var somaPorStatus = 0;
				$scope.resultadoTotal = somaPorStatus;
				$scope.relatorio = '';
				$scope.esconderBotaoImprimir = false;
				

			}
			else if(filtro == 'todos'){
				$scope.esconderBotaoImprimir = true;
				var somaPorStatus = 0;
				var nada = [];

				$http.get('/ProjetoRelatorioBackEnd/rest/agenda/verTodos/')
				.success(function(data) {

					for (var i = 0; i < data.length; i++) {

						var dataRecebimento =  new Date(data[i].dataRecebimento);

						if(dataRecebimento.getFullYear() == anoAtual && dataRecebimento.getMonth() == mesAtual){

							data[i].dataRecebimento = moment(data[i].dataRecebimento).format('L');
							data[i].dataInicio = moment(data[i].dataInicio).format('L');
							data[i].dataEntrega = moment(data[i].dataEntrega).format('L');

							somaPorStatus += data[i].folha.valor;

							dadosAtuais.push({"id":data[i].id,"a":null,"status":data[i].status,"descricao":data[i].descricao,"dataRecebimento":data[i].dataRecebimento,"dataInicio":data[i].dataInicio,"folha":{"id":data[i].folha.id,"valor":data[i].folha.valor,"tipoFolha":data[i].folha.tipoFolha},"dataEntrega":data[i].dataEntrega,"de":null,"idFolha":data[i].idFolha});



						} else {
							dadosAntigos.push({id: data[i].id, descricao: data[i].descricao, folha: data[i].folha.tipoFolha, // colocando os dados no array vazio com a função push
								valor: data[i].folha.valor, dataRecebimento: data[i].dataRecebimento, dataInicio: data[i].dataInicio,
								dataEntrega: data[i].dataEntrega});

						}

					}


					retorno.resolve(dadosAtuais);
					$scope.resultadoTotal = somaPorStatus;

				})
				.error(function() {

					alert("Sem conexão com a internet");
				})
				return retorno.promise;

			}
			else {

				$http.get('/ProjetoRelatorioBackEnd/rest/agenda/verTodosPorStatus/'+ filtro)
				.success(function(data) {
					$scope.esconderBotaoImprimir = true;

					var somaPorStatus = 0;

					for (var i = 0; i < data.length; i++) {

						var dataRecebimento =  new Date(data[i].dataRecebimento);

						if(dataRecebimento.getFullYear() == anoAtual && dataRecebimento.getMonth() == mesAtual){

							data[i].dataRecebimento = moment(data[i].dataRecebimento).format('L');
							data[i].dataInicio = moment(data[i].dataInicio).format('L');
							data[i].dataEntrega = moment(data[i].dataEntrega).format('L');

							somaPorStatus += data[i].folha.valor;

							dadosAtuais.push({"id":data[i].id,"a":null,"status":data[i].status,"descricao":data[i].descricao,"dataRecebimento":data[i].dataRecebimento,"dataInicio":data[i].dataInicio,"folha":{"id":data[i].folha.id,"valor":data[i].folha.valor,"tipoFolha":data[i].folha.tipoFolha},"dataEntrega":data[i].dataEntrega,"de":null,"idFolha":data[i].idFolha});



						} else {
							dadosAntigos.push({id: data[i].id, descricao: data[i].descricao, folha: data[i].folha.tipoFolha, // colocando os dados no array vazio com a função push
								valor: data[i].folha.valor, dataRecebimento: data[i].dataRecebimento, dataInicio: data[i].dataInicio,
								dataEntrega: data[i].dataEntrega});

						}

					}


					retorno.resolve(dadosAtuais);
					$scope.resultadoTotal = somaPorStatus;

				})
				.error(function() {

					alert("Sem conexão com a internet");
				})
			}
			return retorno.promise;
		}

		return {

			exibirRelatorioGeral: exibirRelatorioGeral,
			gerarOPdfAlternativa: gerarOPdfAlternativa,
			verAgendaPorStatus: verAgendaPorStatus

		}

	}]);

}());
